Breaking Changes

On this page:

Itential Automation Platform

BREAKING CHANGE for 2021.1.1 -> 2021.1.2

Child Job Loop validation of Transformations

Before 2021.1.2, if a childJob task used a loop with a transformation, and that transformation no longer existed on the system, an error would not occur until the childJob task ran. In 2021.1.2, this will now cause a validation error, putting the workflow into draft status and disallowing it from being started.

What should I do?

If an error appears related to missing transformations on a child job loop after saving the workflow or starting a job, it is recommended to update the specified childJob task with a different transformation. Alternatively, this can be fixed by re-importing the transformation, if possible.

Querying outgoing variables for childJob task that has loop properties (POST /workflow_engine/getTask)

Starting in the 2021.1.2 maintenance release, if a childJob task has loop properties set and is queried for using the POST /workflow_engine/getTask API, the returned data structure is changed to return an array of job _ids in the output's loop property. Each _id in the array references the _id of each child job started by the task. This was changed because the outgoing loop data for the childJob task can quickly become too large to handle in the platform. No other APIs were modified but will instead dereference the loop array before returning if the childJob loop task was queried for.

What should I do?

To return the full output of a childJob loop task, you can use the POST /workflow_engine/tasks/search API, which dereferences the data and returns the full output. Otherwise, the data will need to be dereferenced by getting each individual job in the array and querying for the output variables and status.

BREAKING CHANGE for 2021.1.0 -> 2021.1.1

Removal of "progress" key from checkIndexes API

As part of the 2021.1.1 maintenance release, the "progress" key is no longer included as part of the return data from the checkIndexes, or GET /indexes/:collection/status API. The "inProgress" key can be used to determine whether the indexes are currently being created, but the return object no longer includes data about what percentage of the index creation has been completed.

BREAKING CHANGE for 2020.2 -> 2021.1

The following are breaking changes for the 2021.1 release.

API Removal Due to Scheduled Deprecations

The table below shows a list of APIs that have been removed from IAP. Our policy is to provide a deprecation notice two (2) release cycles in advance (at a minimum) before the API is removed.

What should I do?

Review any custom apps and adapters that might reference any APIs on the list and change them to the replacement call (or remove them if no replacement call is given).

Removed APIs

Item Description Deprecation Release Actual Removal Release Replacement
GET /isAlive Tool to determine the current status of a service. 2018.3 2021.1 GET /status
restoreDevice Restore the given configuration to a device. 2019.1 2021.1 restoreConfig

Changes to the Pronghorn.getMethods permission for Custom Roles

In 2021.1, the GET /methods/registry API is no longer included in the Pronghorn.getMethods permission for custom roles. Access to the GET /methods/registry API is now included under the Pronghorn.getMethodsRegistry permission instead, and the Pronghorn.getMethods permission solely includes the GET /methods API.

What should I do?

If any custom role contains the Pronghorn.getMethods permission and does not need access to the GET /methods API, please add the new Pronghorn.getMethodsRegistry permission to that role in Authorization Manager.

BREAKING CHANGE for 2020.1 -> 2020.2

The following are breaking changes for the 2020.2 release.

API Removal Due to Scheduled Deprecations

The table below shows a list of APIs that have been removed from IAP. Our policy is to provide a deprecation notice two (2) release cycles in advance (at a minimum) before the API is removed.

Removed APIs

Item Description Deprecation Release Actual Removal Release Replacement
/mop/ping Tool to determine the reachability of a device. N/A 2020.2 /configuration_manager/isAlive
/importWorkflow Import a workflow. 2019.2 2020.2 /workflow_builder/importWorkflow
/exportWorkflow Export a workflow. 2019.2 2020.2 /workflow_builder/exportWorkflow
/queryTasks Query tasks. 2019.3 2020.2 /workflow_engine/searchTasks
/claimJob Claim a job. 2019.3 2020.2 None
/releaseJob Release a job. 2019.3 2020.2 None

What should I do?

Review any custom apps and adapters that might reference any APIs on the list and change them to the replacement call (or remove them if no replacement call is given.)

Jade to Pug Update (Custom/Manual Task potentially affected)

Due to security concerns with jade, we have updated to the most recent library named pug. With this change, some custom applications may be affected and need to be tested and updated with a minor adjustment.

What should I do?

Review any custom applications with manual tasks that reference jade and change them to the pug equivalent.

For instance, this code block:

extends ../../../@itential/pronghorn-core/ui/views/layout.jade
block append content

Must be updated to:

extends ../../../@itential/pronghorn-core/ui/views/layout.pug
block append content

Or to this:

extends ../../../@itential/pronghorn-core/ui/views/layout
block append content

Additionally, any filenames ending in .jade need to be changed to .pug.

Device Broker

Item Description Deprecation Release Actual Removal Release Replacement
connectDevice Checks a device connection from Pronghorn (IAP) to a device through NSO. 2018.3 2020.2 Device Broker
isAlive
getDeviceGroupsForDevices Gets the device groups for all devices. 2018.3 2020.2 Itential no longer supports NSO device groups and auth groups as brokerable constructs. Use adapter tasks instead.
liveStatus Attempts to send data directly to a device. 2018.3 2020.2 adapter-nso
liveStatus
liveStatusScanHosts Will search all hosts that recognize the device. 2018.3 2020.2 adapter-nso
liveStatus
syncTo Syncs the device config to NSO. 2018.3 2020.2 adapter-nso
syncTo
updateDeviceSetting Updates an NSO device setting. 2018.3 2020.2 adapter-nso
addDevice (with settings)

Service Broker

Item Description Deprecation Release Actual Removal Release Replacement
dryRunService Get a dryrun from adding a service instance. 2018.3 2020.2 None
dryRunXML Dryrun an XML object. 2018.3 2020.2 adapter-nso
dryRunXML
fetchData Performs a search on all currently running NSO instances (set as service types). 2018.3 2020.2 adapter-nso
fetchData
findService Retrieve service data. 2018.3 2020.2 None
getServiceModelMap Gets all the service models IAP (Itential Automation Platform) currently has access to. 2018.3 2020.2 adapter-nso
getServiceModelMap
provisionXML Provision a service with an XML object. 2018.3 2020.2 adapter-nso
provisionXML
runAction Executes an action on the adapter. 2018.3 2020.2 adapter-nso
runAction

Removal of Adapter-Mongo

To better support the use of Mongo in the workflow, adapter-mongo was deprecated and removed, and replaced with adapter-db_mongo, an open-sourced adapter. The dbManager is preferred for source code, and adapter-db_mongo is how you access Mongo from a workflow.

As a result of this removal, customers will need to instantiate their database connections for custom applications. Custom applications can continue to use MongoDB, although it is no longer required

  • Adapter-mongo is currently instantiating connections by using the MongoDB node.js module in version 3.5.7.
  • For your applications to continue working as before, use driver version 3.5.7 to establish a database connection.
  • To use MongoDB 3.6 or higher, use the latest version of the MongoDB node driver.

Tags UI Moved to Admin Essentials

The Tags user interface has been removed from its previous location of <base URL>/tags and a new Tags interface has been added to the Admin Essentials home page. Users accessing the previous Tags URI will be redirected to the Admin Essentials home page to access the new Tags interface.

Platform Naming Conventions

All adapters, applications, and brokers must have method parameters and return names that adhere to the new platform naming conventions. For releases in the near future, all non-validating names will cause the adapter, application, or broker to not start in the platform and an error log message will be written to the log files and to standard output (stdout).

The platform naming conventions are also used to validate job variable names in workflows, and any non-validating names will cause the workflow to have errors and be put in "draft" mode. Users cannot start a job from a workflow if it is in "draft" mode.

What should I do?

Consult the documentation explaining the naming conventions. Ensure each job variable defined within all workflows follow the conventions. Use the Level of Effort (LOE) tool to quickly identify any violations to the naming convention.

For any custom applications, adapters, and tasks, review all method parameters and return names to ensure adherence to the naming conventions. Please remember, even though this release will not have any ill-effects and will behave the same as it does in the previous release, future releases will cause these adapters, applications, and tasks to not start.

Return Type Change for getOutOfSyncConfig() in adapter-nso

The getOutOfSyncConfig() function returns a string format configuration containing many out-of-sync configs. However, when a device is in-sync, the function returns an empty array instead of an empty string. This change modifies the return value to an empty string.

BREAKING CHANGE for 2020.1.13 -> 2021.1

createTransformation and updateTransformation API status codes

Upon an upgrade from a 2020.1 maintenance release version before 2020.1.14 to 2021.1, the API status code response for the createTransformation and updateTransformation APIs will now be a 200 instead of a 201 status code upon a successfully created or updated transformation.

What should I do?

Check any custom application which calls the createTransformation or updateTransformation API to see if it uses the statusCode response. If it does, make sure any check for a "201" response instead looks for a "200" response.

BREAKING CHANGE for 2020.1.1 -> 2020.2

RabbitMQ Properties Moved from Service Config to Profile

Upon upgrade from the 2020.1.1 maintenance patch version to the 2020.2 bundle, the RabbitMQ properties will be automatically moved from all service configs to the profile. Additionally, these settings will be changed in the database; therefore all systems that share this database connection will be affected also. Please note, if you have a disaster recovery (DR) system in your setup, the changes made to the database will take effect once the first system is updated and affect all systems using that database. This basically means that all systems will need to be upgraded at the same time.

Rollback Instructions

Since the RabbitMQ properties will be auto-migrated from the service config to the profile, if a rollback is necessary, those properties must be restored manually to each relevant service config prior to upgrade.